﻿using commonImportPlugin.Configs.Base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace commonImportPlugin.Configs.PbocFile
{
    /// <summary>
    /// 金融数据为文本格式，以行为单位存放的
    /// （全国建行）
    /// </summary>
    public class PbocFileConfigJH : ConfigsBase,IcommonBase
    {
        //
        //  基本配置参数
        //
        #region
        /// <summary>
        /// 工厂配置
        /// </summary>
        public string factory { set; get; }
        /// <summary>
        /// 筛选数据文件规则
        /// (文件名正则[#]文件内容正则)
        /// </summary>
        public string fileFilterRules { set; get; }
        /// <summary>
        /// 检查银行卡号正则表达式
        /// </summary>
        public string bankCardIdCheckRegex { set; get; }
        /// <summary>
        /// 检查IC数据正则表达式
        /// </summary>
        public string icDataCheckRegex { set; get; }
        #endregion

        //
        //其他
        //
        #region
        private static PbocFileConfigJH uniqueInstance;
        public void Init()
        {
            PbocFileConfigJH pbocFileConfig = new PbocFileConfigJH();
            #region 工厂配置扩展名
            ////////////////////工厂配置//////////////////
            pbocFileConfig.factory = configs["PbocFileFactory"];

            /////////////////获取文件扩展名////////////////
            if (!configs.ContainsKey("PbocFileFilterRules"))
                throw new Exception(PbocErrors.PbocFileFilterRulesError);

            pbocFileConfig.fileFilterRules = configs["PbocFileFilterRules"];


            #endregion

            #region 检查数据的正则
            ////////////////检查IC数据的正则////////////
            if (configs.ContainsKey("PbocIcDataCheckRegex"))
            {
                pbocFileConfig.icDataCheckRegex = configs["PbocIcDataCheckRegex"];
            }

            /////////////////检查银行卡号的正则////////////
            if (configs.ContainsKey("PbocBankCardIdCheckRegex"))
            {
                pbocFileConfig.bankCardIdCheckRegex = configs["PbocBankCardIdCheckRegex"];
            }
            #endregion

            uniqueInstance=pbocFileConfig;
        }
        /// <summary>
        /// 获取配置
        /// </summary>
        /// <returns></returns>
        public static PbocFileConfigJH GetConfig()
        {
            if (uniqueInstance == null)
            {
                return null;
            }
            return uniqueInstance;
        }
        #endregion
    }
}
